package com.qxkj.id.restgen.common;

import lombok.Data;

import java.io.Serializable;

/**
 * Copyright © 2018年 ziniuxiaozhu. All rights reserved.
 *
 * @Author 临江仙 hzqiuxm@163.com
 * |`字段`|`版本`|`类型`|`生成方式`|`秒级时间`|`序列号`|`机器ID`|
 * | :--:| :--:| :--:| :--:    | :--:   | :--:  | :--: |
 * |*位数*|*63*|*62* | *60-61* |*40-59* |*10-39*|*0-9*|
 * @Date 2018/9/18 14:30
 */

@Data
public class Id implements Serializable {

    private static final long serialVersionUID = 6870931236218221183L;

    /**
     * 机器编号 10位
     */
    private long machine;
    /**
     * 序列号 30位
     */
    private long seq;
    /**
     * 生成时间 20位
     */
    private long time;
    /**
     * 生成方式 单机嵌入00  单机服务01  集群服务02
     */
    private long genMethod;
    /**
     * 类型：最大峰值型 0 ，最小粒度型 1
     */
    private long type;
    /**
     * 版本号 默认0  升级 1
     */
    private long version;

    public Id(long machine, long seq, long time, long genMethod, long type, long version) {
        this.machine = machine;
        this.seq = seq;
        this.time = time;
        this.genMethod = genMethod;
        this.type = type;
        this.version = version;
    }

    public Id() {
    }
}
